package jd;

import java.util.*;

public class Jd2 {

	//一个序列，问由0开始到n结束共n+1个数字，在0~n之间的这些数有多少种排列方式（不重复）
	//附加条件：序列中连续两张牌号之差的绝对值不能超过2
	//输入为n的值
	//示例：输入3 
	//    输出2（两种情况：0 1 2 3  和 0 2 1 3）
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int res = 0;//输出结果
		int count = n - 1;//除了0和n还有n-1个数
		Set<Integer> set = new HashSet<Integer>();
		Random r = new Random();
		
		int data0 = 0;
		int datan = n;
		int 序列总数量 = 0; //2的n - 2次方
		int 计数 = 1 ;
		while(计数 < 序列总数量) {
			for(int i = 1; i <= count; i ++) {
				set.add(i);
			}
			for(int i = 0; i < n; i ++) {
				data0 += (r.nextInt(1) + 1);
				set.remove(data0);
			}
			if(data0 < datan - 2) {
				data0 = 0;
			}
			if(set.isEmpty()) {
				res ++;
			}
			计数 ++;
		}
		System.out.println(res);
	}

}
